home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / winsock / winftp.zip / WNFTPSRC.ZIP / WS_ERROR.C < prev    next >
C/C++ Source or Header  |  1993-12-08  |  3KB  |  120 lines

  1. #include "ws_glob.h"
  2. #include "winftp.h"
  3.  
  4. LPSTR ReturnWSError (UINT nErr, LPSTR lpszBuf)
  5. {
  6.   static char szErrMsg[128];
  7.   LPSTR lpszRetStr;
  8.  
  9.   switch(nErr)
  10.   {
  11.     case WSAVERNOTSUPPORTED:
  12.       lpszRetStr="version of WinSock not supported";
  13.       break;
  14.     case WSASYSNOTREADY:
  15.       lpszRetStr="WinSock not present or not responding";
  16.       break;
  17.     case WSAEINVAL:
  18.       lpszRetStr="app version not supported by DLL";
  19.       break;
  20.     case WSAHOST_NOT_FOUND:
  21.       lpszRetStr="Authoritive: Host not found";
  22.       break;
  23.     case WSATRY_AGAIN:
  24.       lpszRetStr="Non-authoritive: host not found or server failure";
  25.       break;
  26.     case WSANO_RECOVERY:
  27.       lpszRetStr="Non-recoverable: refused or not implemented";
  28.       break;
  29.     case WSANO_DATA:
  30.       lpszRetStr="Valid name, no data record for type";
  31.       break;
  32. /*
  33.     case WSANO_ADDRESS:
  34.       lpszRetStr="Valid name, no MX record";
  35.       break;
  36. */
  37.     case WSANOTINITIALISED:
  38.       lpszRetStr="WSA Startup not initialized";
  39.       break;
  40.     case WSAENETDOWN:
  41.       lpszRetStr="Network subsystem failed";
  42.       break;
  43.     case WSAEINPROGRESS:
  44.       lpszRetStr="Blocking operation in progress";
  45.       break;
  46.     case WSAEINTR:
  47.       lpszRetStr="Blocking call cancelled";
  48.       break;
  49.     case WSAEAFNOSUPPORT:
  50.       lpszRetStr="address family not supported";
  51.       break;
  52.     case WSAEMFILE:
  53.       lpszRetStr="no file descriptors available";
  54.       break;
  55.     case WSAENOBUFS:
  56.       lpszRetStr="no buffer space available";
  57.       break;
  58.     case WSAEPROTONOSUPPORT:
  59.       lpszRetStr="specified protocol not supported";
  60.       break;
  61.     case WSAEPROTOTYPE:
  62.       lpszRetStr="protocol wrong type for this socket";
  63.       break;
  64.     case WSAESOCKTNOSUPPORT:
  65.       lpszRetStr="socket type not supported for address family";
  66.       break;
  67.     case WSAENOTSOCK:
  68.       lpszRetStr="descriptor is not a socket";
  69.       break;
  70.     case WSAEWOULDBLOCK:
  71.       lpszRetStr="socket marked as non-blocking and SO_LINGER set not 0";
  72.       break;
  73.     case WSAEADDRINUSE:
  74.       lpszRetStr="address already in use";
  75.       break;
  76.     case WSAECONNABORTED:
  77.       lpszRetStr="connection aborted";
  78.       break;
  79.     case WSAECONNRESET:
  80.       lpszRetStr="connection reset";
  81.       break;
  82.     case WSAENOTCONN:
  83.       lpszRetStr="not connected";
  84.       break;
  85.     case WSAETIMEDOUT:
  86.       lpszRetStr="connection timed out";
  87.       break;
  88.     case WSAECONNREFUSED:
  89.       lpszRetStr="connection refused";
  90.       break;
  91.     case WSAEHOSTDOWN:
  92.       lpszRetStr="host down";
  93.       break;
  94.     case WSAEHOSTUNREACH:
  95.       lpszRetStr="host unreachable";
  96.       break;
  97.     case WSAEADDRNOTAVAIL:
  98.       lpszRetStr="address not available";
  99.       break;
  100.     default:
  101.       if(lpszBuf==NULL) lpszBuf=szErrMsg;
  102.       wsprintf((LPSTR)lpszBuf, (LPSTR)"error %u", nErr);
  103.       return(lpszBuf);
  104.   }
  105.   if(lpszBuf!=NULL) 
  106.   {
  107.     lstrcpy(lpszBuf,lpszRetStr);
  108.     return(lpszBuf);
  109.   }
  110.   return(lpszRetStr);
  111. }
  112.  
  113. VOID ReportWSError (LPSTR lpszMsg,UINT nErr)
  114. {
  115.   if (lpszMsg!=NULL)
  116.     DoPrintf ("%s: %s",lpszMsg,ReturnWSError (nErr,NULL));
  117.   else
  118.     DoAddLine (ReturnWSError(nErr,NULL));
  119. }
  120.